Methods and systems for processing and displaying content

ABSTRACT

Methods and systems are described for processing and display content. Web page data for a first web page is received from a remote system, wherein the web page is to be displayed on a terminal associated with a user. An automatic identification is performed of a first content in the first web page data. A user-defined profile is accessed. A second content is automatically selected based at least in part on the user profile. The first content is replaced with the second content so that if the first web page is displayed on the terminal associated with the user, the second content is displayed and the first content is not displayed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/728,116, filed on Mar. 19, 2010 which claims the benefit under 35U.S.C. §119 of U.S. Provisional Application No. 61/161,944, filed Mar.20, 2009, and U.S. Provisional Application No. 61/292,093, filed Jan. 4,2010, the contents of which are incorporated herein by reference intheir entirety.

STATEMENT REGARDING FEDERALLY SPONSORED R&D

Not applicable.

PARTIES OF JOINT RESEARCH AGREEMENT

Not applicable.

REFERENCE TO SEQUENCE LISTING, TABLE, OR COMPUTER PROGRAM LISTING

Not applicable.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is related to methods and systems for identifyingand presenting information, such as information related to a searchquery or located in an electronic representation of data.

2. Description of the Related Art

The Internet has become an essential tool for large numbers of people.The Internet is used to perform searches, run applications, reviewcontent, communicate with others, house emails and files, etc.

With respect to searching, search engines typically utilize an algorithmto compile search results relevant to a user's search query. Certainsearch engines raise revenue by charging advertisers to have theirlistings appear higher up in the search results and/or by displayingadvertisements related to the search query on the same page as theunpaid search engine results. However, disadvantageously, often suchsearch engines fail to display items that are of sufficient interest toa given user.

SUMMARY OF THE INVENTION

The present invention is related to methods and systems for identifyingand presenting information, such as information related to a searchquery or with respect to an electronic representation of data (e.g., aWeb page, content stream, data provided via a service or application,etc.).

The following presents a simplified summary of one or more aspects inorder to provide a basic understanding of such aspects. This summary isnot an extensive overview of all contemplated aspects, and is intendedto neither identify key or critical elements of all aspects nordelineate the scope of any or all aspects. Its sole purpose is topresent some concepts of one or more aspects in a simplified form as aprelude to the more detailed description that is presented later.

Certain embodiments modify, insert, overlay and/or replace content(collectively referred to as enhanced content placement). For example,the enhanced content placement can be performed with respect to searchresult listings or other content from a web page or data provider.

Certain embodiments substitute original content with replacementcontent, and/or augment the placement/position of certain content on asearch results page, such as by reordering search results or inserting alisting within an original search result listing. Optionally,inserted/replacement content may overlay (e.g., as a pop-up or a layeredcontent) unwanted or less desirable content. Optionally, a user and/orsoftware application may be provided with a control via which theuser/application is provided the ability to toggle the inserted contenton or off to reveal the original content configuration (e.g., theoriginal order of the content, such as the original ordering of a searchresult listing, or the original advertisements) before the pagemodification was made.

An example embodiment provides a node, comprising: a processor;tangible, non-transitory memory that stores a program that when executedby the processor is configured to perform operations, comprising:receiving web page data for a first web page from a remote system,wherein the web page is to be displayed on a terminal associated with auser; causing, at least in part, an automatic identification of a firstcontent or a link to the first content in the first web page data;causing, at least in part, a user-defined profile associated with theuser to be accessed, the profile including: demographic informationregarding the user; or an identification of an area of interest of theuser; or both the demographic information regarding the user and theidentification of the area of interest of the user; causing, at least inpart, a second content to be selected based at least in part on the userprofile; causing, at least in part, the first content or the link to thefirst content to be replaced with the second content or a link to thesecond content so that if the first web page is displayed on theterminal associated with the user, the second content is displayed andthe first content is not displayed.

An example embodiment provides a method comprising: receiving at acomputing device web page data for a first web page from a remotesystem, wherein the web page is to be displayed on a terminal associatedwith a user; using the computing device, causing, at least in part, anautomatic identification of a first content or a link to the firstcontent in the first web page data; using the computing device, causing,at least in part, a user-defined profile associated with the user to beaccessed, the profile including: demographic information regarding theuser; or an identification of an area of interest of the user; or boththe demographic information regarding the user and the identification ofthe area of interest of the user; using the computing device, causing,at least in part, a second content to be automatically selected based atleast in part on the user profile; using the computing device, causing,at least in part, the first content or the link to the first content tobe replaced with the second content or a link to the second content sothat if the first web page is displayed on the terminal associated withthe user, the second content is displayed and the first content is notdisplayed.

Tangible, non-transitory memory that stores a program that when executedby the processor is configured to perform operations, comprising:receiving web page data for a first web page from a remote system,wherein the web page is to be displayed on a terminal associated with auser; causing, at least in part, an automatic identification of a firstcontent or a link to the first content in the first web page data;causing, at least in part, a user-defined profile associated with theuser to be accessed, the profile including: demographic informationregarding the user; or an identification of an area of interest of theuser; or both the demographic information regarding the user and theidentification of the area of interest of the user; causing, at least inpart, a second content to be automatically selected based at least inpart on the user profile; causing, at least in part, the first contentor the link to the first content to be replaced with the second contentor a link to the second content so that if the first web page isdisplayed on the terminal associated with the user, the second contentis displayed and the first content is not displayed.

An example embodiment provides a node, comprising: a processor;tangible, non-transitory memory configured to stored a program that whenexecuted by the processor is configured to perform operations,comprising: receiving web page data for a first web page from a remotesystem, wherein the web page is to be displayed on a terminal associatedwith a user; causing, at least in part, an automatic identification of afirst advertisement or a link to the first advertisement in the firstweb page data; causing, at least in part, a user-defined profileassociated with the user to be accessed, the profile including:demographic information regarding the user; or an identification of anarea of interest of the user; or both the demographic informationregarding the user and the identification of the area of interest of theuser; causing, at least in part, a second advertisement to be selectedbased at least in part on the user profile; causing, at least in part,the first advertisement or the link to the first advertisement to bereplaced with the second advertisement or a link to the secondadvertisement so that if the first web page is displayed on the terminalassociated with the user, the second advertisement is displayed and thefirst advertisement is not displayed.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosed aspects will hereinafter be described in conjunction withthe appended drawings, provided to illustrate and not to limit thedisclosed aspects, wherein like designations denote the elements.

FIG. 1 illustrates an example architecture for an advertisementenhancement/ranking improvement system.

FIG. 2A illustrates an example process for inserting and/or improvingthe position of content.

FIG. 2B illustrates an example process for inserting selecting anddisplaying content.

FIG. 3 illustrates an example user interface.

FIG. 4 illustrates another example user interface.

FIG. 5 illustrates an example interaction process with respect to aclient software application and components of a distributed searchengine and content distribution system.

FIG. 6 illustrates an example processes for setting up and configuringclient software.

FIG. 7 illustrates an example process with respect to merchantinteraction and components of a distributed search engine and contentdistribution system.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Methods and systems are described for improving the ranking, position,and/or presentation of content (e.g., wherein the content is one or moreHTML links, media, advertisements, summary text, or URLs (UniformResource Locators) in a list of search results or web site).

As will be described in greater detail below, certain embodimentsutilize or operate in the environment of distributed networked system tomodify, insert and/or replace content, such as one or moreadvertisements or one or more listings with respect to a search resultlisting (collectively referred to as enhanced content placement). Forexample, the enhanced content placement can be performed with respect tosearch results, such as search results provided via a web page by athird party search engine in response to a user query, or in a contentweb page/media stream accessed via a content provider, such as web pagesor other media stream from a news web site, an entertainment related website, a blog, a social networking site, a media sharing site, a webapplication (e.g., a web based email application or calendar), etc.Optionally, certain embodiments provide such enhanced content placementwith the cooperation from the entity that operates the search engineand/or the web page provider to thereby provide content on their behalfto more relevant users and/or to provide more relevant content to theirusers. Optionally, certain embodiments provide such enhanced contentplacement without cooperation from the entity that operates the searchengine (and optionally without providing a communication to the searchengine site that indicates the enhanced content placement is beingperformed) and/or the web page provider. Certain embodiments describedherein provide a distributed contribution and reward system and processfor payments or credits.

In particular, certain embodiments optionally address shortcomings ofconventional search engines, search engine optimization techniques,content page/document delivery and online advertising industry models.For example, certain embodiments improve the user experience and theresults of an advertisement program, optionally based at least in parton user rules and preferences, by substituting a given advertisementwith another advertisement, by augmenting the placement of anadvertisement or other content on a search results page and/or byreordering search results or other content, optionally without thecooperation from and/or knowledge of the search engine operator and/orweb page provider.

Many conventional search engines display search results and relatedadvertisements, where the displayed advertisements may be selected atleast in part on the relevance of the advertisement to a search queryand a payment from the advertiser. For example, many conventional searchengines display search results and related advertisements, where thesearch results are ranked based on a variety of factors, such as numberof matched words, frequency of matches, word proximities, age or date ofthe information, Boolean expressions, payment, and other criteria. Inaddition to ranking items in a search result based on the relevance ofthe search criteria, companies that operate search engines offerimproved ranking or visibility to an advertiser for itsadvertisements/listings and their partners for a fee. One disadvantageof these conventional fee-based methods is that they make thedistributed input of users less relevant and often ignore user relevantweighting criteria or participation. Therefore, such conventionalmethods often fail to provide advertisements or other content (e.g., aspart of search results) that are of sufficient relevance to a givenuser.

The Internet is so vast that it is overwhelming for Internet users toconsider the entire search results from search engines providers. Forexample, at the time of this example a simple search on the topic of“Eagles” returned 565 million references on Yahoo, 170 millionreferences on Google and 94 million references on MSN. Further, thereferences listed for each of these companies in this example were notconsistent, meaning each of these engines used different criteria forstoring, retrieving or displaying their results leaving the user tonavigate the proverbial “needle in a haystack” to locate any particularreference or link desired. Statistically this creates an unbalancedmodel and disadvantages for users because the search results oradvertisements that are of more relevance to a user are not presentedfirst or with an appropriate ranking, and so a user has to navigatethrough large numbers of search results, advertisements, and web pageswith little or no relevance to the user to find those of interest.

A site wishing to be more visible or gain relevance can utilize specificand often dynamic techniques to improve their ranking or pay a fee toimprove their visibility. Often, a site that wants to improve theirlisting employs the help of a Search Engine Optimization (SEO) companyto help enhance their visibility. These companies conventionally usetechniques including customized text, embedding hidden text or metadatawithin the reference, submitting references to many search engines,creating multiple links to the same text and various other techniques toincrease relevancy scores within search engine algorithms.

The challenge faced by SEOs and their customers is that conventionallytheir methods employed for improving customer visibility are static,very manual, and do not produce lasting or maintainable results. Searchportals also attempt to normalize these techniques to increase theirrevenues by ignoring meta tags or repeated words to counter SEO tacticsso that the advertiser, merchant or content provider has to pay equal orhigher costs to achieve a certain ranking or to be recognized. Further,conventional SEO solutions do little to increase the frequency scoringattributes for search engines in the public forum and are thereforedisadvantaged. Similarly, a company that desires to make theiradvertisements more visible may be required to pay extra fees andcontract exclusively with delivery networks to display theiradvertisements, which may or may not be displayed relative to the user'sinterests.

A challenge faced by many advertisers is that the desired content or theinterests of a user to whom advertisements are to be displayed are notfully expressed though search queries or by general browsing, andconventionally there is no direct feedback from the user except for whenan advertisement link is selected. While certain advertisers may attemptto use cookies, browsing behaviors, IP Address reverse location, andinferred demographic information by way of sustained login to aparticular site to gather user information for advertisement targetingpurposes, such methods are relatively ineffective and are often blockedby protection software. Thus, conventionally, advertisers are notadequately delivered the desired types of viewers for theiradvertisement, and the advertisers conventionally do not know whichviewers viewed their advertisements (unless the viewer clicked on theadvertisement, assuming it is linked, and completed a subsequenttransaction with the advertiser or its partner).

An enhanced search engine architecture, content distributionarchitecture and related technology described herein overcome some orall of the foregoing disadvantages and provide a novel paradigm forInternet search portals, content providers, and/or advertisementnetworks. For example, certain embodiments may be used to supplementexisting search technologies by substituting more relevant orparticipatory content in the search results presented to a user. By wayof example, content may include one or more of advertisements, images,news feeds, text, links, streaming media, personal photographs, blogs,twitter messages, or other content.

Described below are example embodiments. The embodiments may beimplemented via hardware, software, or a combination of hardware andsoftware. For example, certain embodiments may include software/programinstructions stored on tangible, non-transitory computer-readable medium(e.g., magnetic memory/discs, optical memory/discs, RAM, ROM, FLASHmemory, other semiconductor memory, etc.), accessible by one or morecomputing devices configured to execute the software (e.g., servers orother computing device including one or more processors, wired and/orwireless network interfaces (e.g., cellular, WiFi, Bluetooth, T1, DSL,cable, optical, or other interface(s) which may be coupled to theInternet), content databases, customer account databases, etc.). By wayof example, a given computing device may optionally include userinterface devices, such as some or all of the following: one or moredisplays, keyboards, touch screens, speakers, microphones, mice, trackballs, touch pads, etc. While certain embodiments may be illustrated ordiscussed as having certain example components, additional, fewer, ordifferent components may be used. Further, with respect to the processesdiscussed herein, various states may be performed in a different order,not all states are required to be reached, and fewer, additional, ordifferent states may be utilized.

While certain embodiments discussed herein utilize a client softwareapplication hosted on a user terminal and configured to perform certainfunctions, some or all of the functions are optionally performed insteador in addition by a device (e.g., a computing device) remote from theuser terminal that is directly or indirectly in communication with theuser terminal, such as a peer note, or proxy node, network appliance oranother device, that may run software that provides some or all of theclient software functionality described herein.

As discussed above, an example embodiment may be utilized with clientsoftware executing on a client device (e.g., a terminal, such as apersonal computer, a wireless cellular device, an interactivetelevision, other entertainment device, a personal digital assistant,router, switch, other terminal, etc.), sometimes also referred to hereinas a “node”. The client device may be coupled to one or more componentsof a distributed search engine and content distribution system, whichmay include a central system (wherein the term “central” is intended tobe functional in nature, not geographical in nature), one or moreproxies, and/or other nodes.

By way of example, the client software may be downloaded over a networkfrom one or more system components, such as the system 180 illustratedin FIG. 1, or may execute on a remote proxy system, peer note and/orother connected system. For example, a component may be configured tostore and transmit the client software to the user device, or the clientsoftware may be provided by direct, tangible media, such as removablemagnetic, optical, or solid state media. The software is installed onthe user's client system, or a proxy node accessed by the user. Inaddition, one or more peer node(s) and/or other systems can bereferenced by the user node as the user's proxy. Optionally, nodes canpull content (e.g., to be used in replacing or modifying originalcontent) ahead of time to work independently against a locally storedcache.

Optionally, nodes (e.g., user peer nodes 92 and/or enterprise proxynodes 94) can serve up content, in part or in whole, to other nodes sothat a modified page or media stream may have come from a plurality ofnodes and the discrete ads or content may have been further subdividedso that any given node only provides a certain percentage (e.g., 5%,10%, 50%, or other percentage) of the actual content, thereby reducingthe load on a given node. Thus for example, in either a pull or pushoperation, a given user node may receive portions of an advertisementfrom 2, 5, 10, or more other nodes, and the given user node thenassembles the various portions into a complete advertisement for displayto the user.

By way of example, a peer node or nodes, which may include one or moreclient software nodes, may be configured to share some or the entireprocessing and distribution load for another user node. By way ofillustration, the client software installed on a device may optionallypull content from one or more peer node(s) that have already aggregatedthe same or similar content, rather than from a central system. A proxynode may include client software executed by a computing device (whichmay be the same as or different software than that installed on the userdevice), that performs some or all the tasks that one or more clientnodes have delegated to the proxy node. The proxy node optionally mayonly return the updated page and content to the requesting clientsoftware nodes, rather than providing versions of a page/content thathave already been received by the requesting client node. This approachreduces the overall bandwidth utilization and processor utilization bythe requesting client node and by the proxy node as duplicative dataneed not be transferred over the network between the client and theproxy node. Additionally, this approach allows the user to forgoinstalling some or all of the client software on their client node andto directly or indirectly access the proxy node to receive some or allof the functionality provided by the software.

Optionally, content may be downloaded to a user terminal in batch mode,before it is even determined that it will be displayed to the user,based in part on the user's profile. This enables the client software toaccess and parse content already received on the host user terminal,such as by pulling the content from the user terminal's local cache (oroptionally, from a peer node, a proxy node, or other remote system).Accessing the content locally enables the parsing and process to beperformed much faster than if the content had to be accessed remotelywhen needed, thereby improving for the user's experience and enablinglarge volumes to be managed effectively. Further, caching the contentahead of time enhances the operation of the merchant/partner interfaces.By way of illustrative example, if a user's interest is baseball (e.g.,as specified in the user's profile), the user's node may pull down“static ads” related to baseball, which may include expiration dateswith these ads, for 90% of the replacement pool, while 10% of the adsmay be in the form of dynamic content, such as a live news feed or freshcontent, which would be accessed in real time, when needed. Thus, whenthe user node fetches a page, the ad engine (or peer or proxy) may pullfrom the local cache the same “static” ad that would have been servedhad the user node pulled the static ad from the remote server in realtime. If the expiration date(s) for some or all of the cached ads isreached, the user's node may pull down additional ads with expirationdates that have not yet been reached.

In an example embodiment, once the client software is installed (e.g.,on the user device and/or a proxy node), the user can optionallyconfigure the client software to run automatically in the background(sometimes referred to herein as a “passive mode”), to automaticallysubmit search queries/URL requests (e.g., based on an instruction from aremote system), optionally without providing the results for display tothe user. Optionally, the user can also configure the client software torun interactively based at least in part on the user's actions(sometimes referred to herein as an “active mode”). For example, theclient software may parse, modify, and/or replace content received as aresult of a user-submitted search query (e.g., search results from asearch engine) and/or may parse, modify, and/or replace content receivedas a result of a URL specified by the user or received as a result of alink activation by the user.

Users can optionally configure execution preferences that affect thebehavior of the client software (or remote software performing some ofall of the functions described herein with respect to the clientsoftware) via a user interface (e.g., a form provided via the clientsoftware or via a web page accessed using a browser or other interface,wherein the user can check off or otherwise select performanceparameters) provided for display by the client software, browser, orotherwise, and the preferences are stored in memory (e.g., local memoryor remote memory). For example, a user may configure the software tooperate:

-   -   only when the user's systems is idle (e.g., when system        resources are not being used by other applications, or when one        or more specified system resources are being used at less than a        specified threshold amount (e.g., 1%, 5%, 10%, 20%, etc.). For        example, when the usage of one or more system resources, such as        the central processing unit and/or disk drive, is less than a        specified percentage of total resources);    -   at particular scheduled times;    -   on specific sites;    -   for specific content; and/or    -   for specific advertisement/content providers.

Optionally, a user interface is similarly provided (e.g., an electronicform) via which a user can enter in relevant demographic data about theuser, the user's household, the user's place of employment, and/or otherusers of the user terminal. For example, the demographic data caninclude some or all of the following:

-   -   age;    -   gender;    -   marital status;    -   level of education;    -   geographic location (which may include the user home and/or work        address);    -   income;    -   work category/profession    -   etc.

The demographic data is optionally provided by the system and used byadvertisers and content providers (e.g., advertisers, ad servers, adnetworks, DSPs, and/or the system operator) to select and provide fordisplay content, search results, and/or advertisements relevant to theuser. Such demographic data may be provided in varying increments asincentives or rewards for participation or improved experience. Forexample, a user interface may be provided via which the user can enterdemographic information. If the user provides a first type ofinformation, such as age, the user may be provided with a first level ofdiscount (e.g., 1 point or a 5% rebate/discount). If the user includestheir gender the user may be provided with a second level of discount(e.g., 5 points or 15% rebate/discount). The user may be provided with athird level of discount if the user provides both the user's age andgender (e.g., 10 points or 25% rebate/discount). Other levels ofdiscounts may be provided for such user-provided information andcombinations thereof, such as income level/range and categories/topicsof interest, to help advertisers better target ads that are relevant tothe users age, income, gender, and field of interests.

Incentives and rewards may include one or more of the following: moneydeposited in a user account, shared revenues (e.g., where the user isprovided a portion, such as a percentage or a fixed amount, of fees paidby advertisers), recognition (e.g., a thank you note or a banneracknowledgement), discounts on purchases of items or services (e.g., foritems or services being advertised by theinsert/overlay/replacement/modified advertisements), ISP accessdiscounts, free access at HotSpots, redeemable coupons or certificatesfor services or products, credits, tokens, or other monetary ornon-monetary reward.

The user's demographic data and interest data (that specifies topics orareas of interest to the user) may be stored (e.g., locally and/orremotely in memory) as one or more quick reference profiles that allowthe user to rapidly specify and/or to rapidly modify the demographicdata and/or the interest data used by the system to select or createrelevant content or ads and/or to insert a listing in a search result.For example, the user can access one or more electronic forms previouslycompleted by the user and enter additional information and/or modifyexisting information, and the new and/or modified information is thenstored for later access.

Optionally, a user may be able to define and store multiple profiles.For example, a user may define a work profile that specifies areas ofinterest to be used in selecting advertisements/content, for when theuser is at work. The same user may define a home profile that specifiesareas of interest to be used in selecting advertisements/content forwhen the user is at home. Optionally, the user may manually select theprofile to be used at a given session via a control provided on a webpage, via the client software, by logging into to the desired profile,or otherwise. Optionally, the profile is automatically selected by thesystem/client software based on information that indicates where theuser is physically located (e.g., via an identifier associated with theterminal the user is currently using, via a MAC address, or otherwise).

Optionally, in addition to or instead of the other parameters describedherein, systems and methods described herein may take into account thephysical size and/or dimensions of content (e.g., an advertisement)being overlain or replaced, wherein the replacement content isidentified and selected so as to fit within the dimensions of thecontent being replaced (or which can be scaled to fit within thedimensions of the content/advertisement being replaced while still beingreadable/adequately viewable).

Unless the context indicates otherwise, the term “replace” as usedherein includes removing an existing document/item of content, such asan image, photograph, video, or text document, as well as to removing areference (e.g., a URL link) to such a document/item of content, andthen replacing the existing content with different content or areference thereto. Thus, the phrase “replace original content withreplacement content” is intended to cover both the case where an actualitem of received original content (e.g., received as part of a web page)is being replaced with an actual item of replacement content, and thecase where a link (e.g., in an HTML text stream for a web page) to anitem of original content is replaced with a link to the replacementcontent. The phrase “replace original content with replacement content”is further intended to encompass the case where the original content is“present” but made invisible (e.g., with a “hidden” attribute) and thereplacement content is located at substantially the same location as theoriginal content, but is not hidden.

Optionally, the user may configure the client application to only accessa specific category of sites or to only display content related to auser specified interest, or to remove advertisements completely fromsearch results and/or other web pages, or to have personal or desiredcontent follow them from page to page (e.g. a picture of their spousethat may be displayed overlaying/replacing unwanted advertisements onany web page including but not limited to their email page, theirfavorite news, entertainment or weather pages/sites and/or otherpage/site that is displayed).

The client software application optionally further provides a userinterface via which the user can specify that the client softwareapplication is to only communicate with selected peer nodes, a proxysystem, and/or a central system, or may communicate with any peer nodes(e.g., not just trusted nodes). The client software application hostedon the user terminal, peer node and/or proxy node may optionally beconfigured to gather information and content from other peer nodes, andcommunicate content and information to other peer nodes, without havingto communicate directly with a central system that may act as a centralrepository of content/advertisements and/or transactions, thusoffloading the central system and enabling the client softwareapplication to operate even if the central system is overloaded, hasfailed, or is otherwise unavailable. Additionally, content oradvertisement may be subdivided among one or more system nodes such thata portion of any given webpage, advertisement or other content may beretrieved of a plurality of nodes substantially simultaneously, inseries or a combination thereof.

For example, the client software may request content from another peernode (optionally based on its proximity to the node hosting the clientsoftware, which the request is provided to a peer node that isrelatively closer to the requesting node than other nodes) that hasalready been distributed relevant content, thereby possibly providingfaster and safer access to the content than having to access the contentfrom a central repository system. By way of further example, the clientsoftware may request content and a web page from a proxy node which mayalso host the client software. In these two examples, the proxy node orthe peer node may receive the web page request and create aggregatedcontent (e.g., the subsequent web page with relevant content, ads andlinks), and transmit this aggregated content to the requesting clientsoftware, or store information or data without generating the aggregatedcontent, thereby enabling the client software to more rapidly andsecurely access the stored information and data, and create the desiredweb page content.

FIG. 3 and FIG. 4 include example user interfaces that illustrate theidentification of content and advertisements (by the client applicationand/or other distributed search engine and content distribution systemcomponents), to thereby enhance or modify the content/advertisementsbased at least in part on the user's preferences, interests, demographicprofiles and/or other information provided by the user via the clientsoftware or otherwise. For example, the software might be an add-on tothe user's preferred browser or running on a proxy node that the usersconnect through to access interne content. For example, the userinterfaces may be presented via a web page, a page panel, a model dialogform, and/or via a wizard that enables the user to specify informationthat may be used to help identify and present desirable content to theuser, and to specify when and where the user may want such information,based in whole or in part on their configured preferences in a userfriendly way.

FIG. 3 illustrates the identification of image advertisements fromspecific providers. By way of example, such identification mayoptionally be performed by recognizing known URLs (e.g., known to beassociated with advertising content) or unknown URLs, SGML/HTML tags(e.g., associated with advertising content), template masks, pagehandler algorithms, parsing the Document Object Model (DOM) structure,by manually tagging and identifying advertising content, by performing astring search (e.g., to identify advertising text, such as words orphrases associated with general or specific advertising, or to identifyspecific URL codes), by performing a content index search, and/or usingother techniques.

Referring to FIG. 3, a user interface is provided including thefollowing interfaces via which a user can customize the identificationand/or replacement of advertisements and/or the ranking of searchresults (although fewer or additional interfaces may be used):

-   -   Optional Interface 302, via which the user can select the        types/sources of advertisements and/or links to target for        overlay, replacement or modification;    -   Optional Interface 304 via which a user can manually specify        whether advertisements on the current displayed page are to be        located and identified to the user and/or whether the identified        advertisements are to be hidden, overlaid or replaced;    -   Optional Interface 306 via which a user can specify        advertisements and/or links that are of interest to the user        (e.g., that the user would want to be used to replaced other        advertisements of less interest), for example the user can        specify topics of interest such as sports, music, technology,        etc;    -   Optional Interface 308 via which the user can specify the user's        demographic profile (e.g., gender, marital status, birth year,        birth month, highest level of education, etc.);    -   Optional Interface 310 via which the user can specify proxy        settings (e.g., use trusted peer nodes only, use any peer node,        etc.).

In this example, an image advertisement 312 (e.g., a photograph, agraphic, streaming media, etc.) that is to be overlaid, modified orreplaced is identified and optionally highlighted (in this example andillustration, by a border placed by the client application around theimage advertisement, although other forms of highlighting may be used).In this example, the original advertisement to be replaced was notselected as a result of a search query. Optionally, the imageadvertisement is not highlighted to the user and thereplacement/modification is optionally performed automatically andtransparently to the user so that the user is not aware that a givenadvertisement is being replaced or modified and the given advertisementis optionally not displayed to the user via the web page prior to beingautomatically replaced.

FIG. 4 illustrates the identification of textual links and sponsoredtext advertisements for specific providers. Referring to FIG. 4, a userinterface is provided including the following interfaces via which auser can customize the identification, modification, overlaid and/orreplacement of advertisements:

-   -   Optional Interface 402, via which the user can select the        types/source of advertisements and/or links to target for        replacement or modification;    -   Optional Interface 404 via which a user can manually specify        whether advertisements on the current displayed page are to be        located and identified to the user and/or whether the identified        advertisements are to be modified, overlaid or replaced.        Optionally, the advertisement is not highlighted to the user and        the replacement/modification is optionally performed        transparently to the user so that the user is not aware that a        given advertisement is being replaced or modified.    -   Optional Interface 406 via which a user can specify types of        content, advertisements and/or links that are of interest to the        user (e.g., that the user would want to be used to make such        information of interest more visible to the user and/or be used        to replace other advertisements of less interest), for example        the user can specify topics of interest such as sports, music,        technology, etc;    -   Optional Interface 408 via which the user can specify the user's        demographic profile (e.g., gender, marital status, birth year,        birth month, highest level of education, etc.);    -   Optional Interface 410 via which the user can specify proxy        settings (e.g., use trusted peer nodes, use trusted proxy node,        use any peer node or proxy node etc.) directly or indirectly        connected to client software/client device.

In this example, several original textual advertisements 412 that havebeen selected by the search engine based at least in part on the user'ssearch query, are identified to be modified or replaced and arehighlighted (in this example, by a border placed by the clientapplication around the textual advertisements to be overlaid, hidden,modified or otherwise replaced). In particular, in this example, atextual advertisement 414 in a targeted advertisement area on the sideof the main search result listing, and a textual advertisement 416 in atargeted advertisement area above the main search result listing areselected for replacement.

As discussed above, the software providing functionality describedherein may be installed on a local user device (e.g., a personalcomputer or other terminal). Optionally, in addition or instead, anenterprise proxy system may used (e.g., operated by an employer, astore, a government entity, on a vehicle (e.g., a train or plane)operator, a hotspot, etc.), wherein the user browser, is re-pointing tothe proxy system, such as using acceptance scripting (“do you accept . .. ”) or a software utility installed on the user device to support theproxy. This provides for a relatively broader reach, as the user canbenefit from the functionality using terminals that have not beenspecifically configured, and the services can be reached viaWiFi/hotspots (e.g., at hotels, chain stores, airplanes, etc.).Optionally, a user interface is provided (e.g., via a web site) viawhich a user can configure user preferences and specify userdemographics.

Optionally, the functionality discussed herein can be provided in wholeor in part utilizing a network/ISP model, optionally without the userhaving to install additional software on the user's device. For example,the proxy service may be performed by a user's ISP or network provider.Optionally, a user interface is provided (e.g., via a web site) viawhich a user can configure user preferences and specify userdemographics.

Two or more implementations (e.g., client based, enterprise based, andISP/networked based) can work together as a hybrid, with variouscombinations of rights, priorities, and overrides. For example, the ISPor enterprise may specify preferred ad networks, but the user clientsoftware (based on user configuration information/controls) may still bepermitted to select from those preferred ad networks what advertisements(if any) are to be displayed. Optionally, the user client software maybe configured to override the enterprise instructions, which may in turnbe configured to override the ISP instructions. Therefore, by way ofexample, the following possible combinations may be used (othercombinations may be used as well):

Client device/client software only;

Client device/client software+ISP; override for user;

Client device/client software+Enterprise+ISP; override for user first,enterprise second and then ISP has last priority;

Enterprise only; no override for user or ISP;

Enterprise+ISP; override for enterprise;

ISP Only; no override for user or enterprise.

FIG. 5 illustrates an example interaction process involving the clientapplication in the context of the novel distributed search engine andcontent distribution architecture. In another embodiment, a brokerservice is optionally contained completely within the client software,which can access content, advertisement and/or other information andservices from existing or traditional ad brokers, ad service providers,ad servers, ad networks, ad network providers, advertisers, ad exchangesor Demand Site Platforms (DSP), from a web portal, and/or a contentprovider providing the web page for display.

The enhanced search engine and content distribution architecture enablesusers to influence and participate in the selection and delivery ofcontent and advertisements, optionally utilizing client softwareinstalled and executing on a user terminal, peer nodes, proxy nodes,and/or a centralized system (e.g., central system 180 illustrated inFIG. 1). The architecture may leverage existing or conventional adbroker, ad server, ad network, DSP and/or ad provider services withenhanced methods using one or more parameters, including those describedabove, such as user interests, user demographics, ad size, ad source, adcontent, other characteristics, etc.

As similarly discussed above, a user may install client software, suchas on user terminals 506, 510, 514, 518. The user may enter the variousparameters discussed herein. The client software may or may not requireregistration based on user configuration parameters. In certainembodiments, the client software and parameters input by the user areregistered in a registration system which may optionally include acentral system 520, peer nodes 508, 516, the client software systemand/or the distributed network architecture 502, which may be the clientsoftware installed on one or more nodes/proxies/ISP systems. Forexample, a distributed software system may receive and transmit dataacross a network, such as the Internet, and may coordinate input andoutput with a central control system and one or more distributed nodesor client software. The client software, via the user terminal or proxynode, communicates with the centralized control system and/or maycommunicate with peer nodes 508, 516 or proxy nodes. Some or all thesite requests (e.g., made by the client software) are optionally parsedfor information and analysis.

For example, when a user (e.g., via a browser or otherwise) requests asite by URL, the page structure may be analyzed to unmask templatestructure, URL randomization and other techniques that may be employedto make it difficult to identify ads. By way of illustration, anadvertiser (or entity working on behalf of the advertiser) may randomizethe name of the link or tag name in order to make it more difficult toidentify an associated advertisement. An example embodiment overcomessuch challenges by examining the source element value, which is muchmore difficult to randomize because the source element value isgenerally referenced by domain (e.g.,adservice.acmeadserver.com?Your_Randomized_Add_Link). In this example,the domain is relatively harder to mask than tags. In the user postback, which is a response to a request (e.g. the user clicks on anadvertisement link), an example embodiment optionally parses therequest, records the parsed request, and builds a counter-solution.

The client software is optionally configured to render, reformat orsubstitute content (e.g., advertisements) on a user terminal, such asuser terminals 506, 510, 514, 518. For example, the replacement content(e.g., more desired or relevant content for the user) may be accessedfrom a replacement content system 520, which may be in the form of aremote server, proxy node, or network appliance such as a router, andthe replacement content can be inserted into web pages served by webserver 522. The other content for the web pages served by the web server522 may be provided by a content creator. The content from thereplacement content system 520 may be used to overlay (e.g., as apop-up, or as layered content), modify, insert or replace content (suchas advertisements, links, search results, etc.) served by a conventionalad broker system, ad network, ad exchange, DSP or other ad provider 524to the web server 522.

For example, with respect to utilizing layered content, the layeredcontent may be selected and/or sized to have substantially the samedimensions as the original content being overlaid. The original contentmay still be present in the page, but is not visible because it isoverlaid with the replacement content. For example, with respect toHTML, the z-order attribute of the replacement content may be set to ahigher order than the original content so that the replacement contentwith be layered above the original content and will obscure the originalcontent. By way of further example, an “invisible” attribute for thereplacement content may be set to “false” and an “invisible” attributefor the original content may be set to “true,” so that when thereplacement content is placed at the position of the original content,the replacement content will be visible, and the original content willnot be visible.

Optionally, if there is audio associated with the original content, theaudio may be automatically muted when the replacement content isdisplayed. Similarly, in addition to muting an audio component oforiginal content, other active/streaming media (e.g., video, animation,scripted, etc.) of the original content may be managed. For example,such streaming media or active media may be automatically orprogrammatically stopped, paused, muted, rewound, cancelled, orotherwise prevented from playing when the original content isreplaced/overlaid to reduce the network bandwidth and/or processorutilization that would otherwise be used to reproduce such media of the“hidden” original media. The replacement content may be provided onbehalf of one or more merchants, advertiser or publishers 526, 528.

The user may configure the client software to receive (via a pulloperation or a push operation) input from the central system, thecontent system 520, or one or more peer nodes 508, 512, 516, and postoutput to the central control system or one or more peer nodes 508, 512,516, which participate in a search optimization and/or contentreplacement/modification process. Content may also come from contentproviders, such as ad exchanges, ad servers, ad networks, DSPs, mediasharing sites (e.g., photo/video sharing sites, blogs, social networkingsites), web-based applications such email or calendar services, etc.

By way of example, user terminal 506 optionally does not have the clientsoftware installed, and instead relies on the proxy 504, which does havesuch software installed, to provide the functionality of the clientsoftware for the user terminal 20. By way of example, user terminal 510optionally does not have the client software installed, and insteadrelies on the peer node 506 and the peer and proxy 512, which do havesuch software installed, to provide the functionality of the clientsoftware for the user terminal 20. By way of yet further example, userterminal 514 optionally does have the client software installed whichcan provide the functionality described herein. By way of still furtherexample, user terminal 518 optionally does have the client softwareinstalled which can provide the functionality described herein andfurther can utilize the services of a peer node 516 and/or a proxy node.

Network nodes may serve as information beacons that communicatetopology, frequency of display, page configurations, delivery methods,host configuration data (e.g., IP (Internet Protocol) address, OS(operating system) type/version, MAC (Media Access Control) address,etc.) and/or other configuration data between nodes and one or moresystem components. Network nodes may also request content (actively orpassively) from web portals, ad providers and other web sites based onrandomized methods or rules, and post back to web portals, web sites andad networks information randomly or by instruction.

The user may be provided, via the system and methods described herein, ashare in proceeds, revenues, shared savings, monitory, other incentivesand/or rewards (e.g., cash, coupon, monetary certificate, recognition,credit) for participating in the search optimization and/or contentreplacement/modification process. Examples of such rewards/incentivesmany include money, free software, free or discounted access to one ormore services (e.g., network access via a hotspot or otherwise, certaincontent, etc.), advertising-free music/videos, discount coupons, rewardvouchers, and/or other items or services. These proceeds, rewards andincentives may be based in part on the level of participation and dataconfigured in the client software (e.g., demographic data, utilizationdata, status or state data, such as CPU participation and availability,etc.).

By way of example, a user may be provided a first or basic reward orincentive for installing the client software in passive mode (e.g., afirst percentage of a service fee charged to an advertiser forincreasing an ad's visibility). The user may be provided with a second,larger incentive/reward for employing the client software in “activemode,” where the user interacts with content delivered by the clientsoftware or peer nodes, such as a percentage of the fees paid by anadvertiser for the user clicking on an advertisement, or a discount on aservice or product. If the user provides demographic data such as age,gender, or interests (e.g., via the client software, a web page, orotherwise), the reward is optionally increased proportionally orincrementally with a corresponding increase in the amount of informationand/or based on the type of information provided by the user.

Active and passive “participation,” with or without user intervention,may include some or all of the following:

random searching;

indexing (e.g., Cataloging, sequencing, structure, source and layout ofSGML/HTML content);

scoring of results to monitor and report specific reference location(e.g., search a given site and determine that a given line is in Xposition of Y elements, report the foregoing back to a content selectionsystem, wherein the reference location may be used to increase inidentifying contents relevancy over time as measured from a systemnode);

positioning data and configuration data within resulting sets (e.g.,position (e.g., X, Y data, where Y is a list and X is the position inthe list)/ranking information regarding a search list or with respect toa number of advertisement served);

simulated execution of the targeted reference to measure and improveresults and to identify peer relationship and delivery networkconfigurations (e.g., identify target advertisement, target link, ortarget link in X position of Y list, and simulate a user's selection ofthe target advertisement/link by transmitting a request back to the webor content service or server with the target information, such as bysending the click-event back to a web portal with the desired linksimulating the user's click on this actual link).

The “participation” behavior may be controlled by softwareconfiguration. Active or passive interaction may cause thereprioritization and formatting of results consistent with the userconfiguration and/or based on rules articulated by the central controlsystems or peer nodes or proxy and other system nodes.

In non-interactive mode, the software may perform its tasksautomatically (e.g., as a background process that does not require auser interface or display activity, status, or other information) andwithout user interaction, however, even in non-interactive mode, thesoftware may still monitor user's activities and patterns, and adapt thesoftware actions in a non-interactive mode. For example, the clientsoftware may operate in the background in non-interactive mode (e.g.,while the client system or proxy node is not being used, is relativelyidle, or is performing other tasks, such as interacting with web pagesusing other software), and the client software may still perform thefunctions of replacing, amending, navigation or communicatinginformation with other systems and networks including the central system180 illustrated in FIG. 1, with or without displaying the replacementcontent/modified content.

As previously discussed, in non-interactive/passive mode the softwaremay automatically activate links and/or submit search queries to asearch engine, optionally using links and/or search queries provided tothe software in a file or otherwise. Optionally, the file may includetiming instructions as to when and/or how often links are to beactivated and/or searches are to be submitted. Optionally, the softwaremay be instructed to activate links and/or submit search queries on asubstantially random basis, optionally within a specified period of time(e.g., within 9:00 AM to 11:00 PM), assuming the host terminal is on.

In interactive mode and in response to an Internet search for aparticular item or general content browsing, the client softwareoptionally parses an incoming web page (e.g., provided by a searchengine and include search results in response to a user query or anypage as a result of browsing) and inserts, substitutes or modifiescontent to provide the user with content that is more relevant based onthe user's configuration characteristics and/or participatory rulesdefined by the system. This insertion/substitution/modification mayinclude overlaying, reordering, summarizing, and/or replacing searchresults provided by the search engine to which the user submitted thesearch query, reordering advertisements, or replacing advertisements, orinserting new content (optionally providing the user with a control viawhich the user can cause the display of the inserted content to betoggled on or off). For example, an entry in a search result listingprovided by a search engine may be moved up or down in the listing basedon the user's configuration characteristics and/or participatory rulesdefined by the system.

By way of illustration, the selection of replacement and/or additivecontent may include identifying content of similar size, origin,category, type, shape and other various attributes as the original pagecontent in order to preserve page formatting and to conform to theuser's expected experience. The selection of replacement and/or additivecontent may also include identifying and communicating pagecharacteristics, methods and configuration data between peer nodes or acentral system. Page characteristics and methods might include HTML Metadata, scripting, referring or embedded URLs, HTML IFrame or DIV tagcontent encapsulations, script activation methods, dynamically loadedcontent, and other HTML source code elements and methods used toidentify, deliver and activate the requested content. This is optionallydone “privately” within the user's device using the software hosted onthe device or may be performed on behalf of the user on peer or proxynodes.

For example, if the user added or modified their existing browsersoftware to include the client software (e.g., as a browser plug-in,software add-on or extension to the network input/output driver stack)the client software enhances the existing browser software to includesome or all of the functions of the client software discussed herein,such that web pages or other interfaces displayed, requested orotherwise accessed by the existing Internet browser may be modified,amended, substituted, identified or replaced by the client software.

Because each client software node in the system may appear to actrandomly and seemingly independently, the resulting patterns related tocontent modification or substitution are likely to be ignored and may bedifficult for search engine sites and other web page providers todetect, thereby ensuring user privacy with respect to the user'sparticipation in the processes described herein.

FIG. 1 illustrates example components and process states that areoptionally included to achieve one or more of the results describedherein. Fewer, additional or different components may used.

In particular, FIG. 1 illustrates an example distributed architecturesystem and the relationships between various example softwarecomponents. Users, advertisers, and merchants may independently registerwith this system and may download software modules, such as the clientsoftware 40, which form part of the distributed system. The clientsoftware 40 receives instructions and information from the centralsystem 180 or peer node(s) or proxy node(s) to make active and passiverequests to the search site portals or website providers and may eithertransform or record the results. Further, FIG. 1 illustrates the clientsoftware modules 50-75 that may be used to act on this content toimprove reference scoring.

FIG. 1 further illustrates how a merchant may interact with the systemto improve the ranking of their entries and/or advertisements in searchresults on a given search site or improve the visibility or ranking ofan existing advertisement or new advertisement independently of service(e.g., where the merchant may provide advertisement/text content butdoes not actively control when or where such content is displayed andrelies on the system to cause the display of the content in a mannerthat meets the merchant's criteria). Additionally, FIG. 1 illustrateshow system components may interact with a financial institution todistribute rewards or compensation.

The Internet browser and requestor module 45 is representative ofexample requester module, such as Internet browser software, which mayor may not be an integrated element of the client software (which may bedownloaded separately and from a different source than other modules ofthe client software 40). In this example, the Internet browser andrequester module 45 renders Internet web pages, although otherembodiments may render different forms of documents/network resources.Once the user navigates to a given search engine site or other web pageor content service provider, a rule-based reorganizing and modificationengine 50 enumerates and identifies the various web page elements (e.g.,using a HTML Document Object Model parser, a string search, a pagehandler algorithm, etc.) such as some or all of the following: text,images, advertisement, etc., to identify possible target web pageelements to modify/reorganize/replace.

An interface module 76 enables the client software to interface withother application software such as internet browsers, cell phoneapplications, instant messaging programs, chat software and other tools,applications and utilities.

An content placement engine 55 evaluates the cataloged elements and maycommunicate with other system components, or other service providers orpeer nodes, to assemble part or all advertisements or content that may(or optionally may not be) more relevant to the user's profile(s) and/orthe user's software configuration parameters. A results parser module 60catalogs and may disassemble the results page into discrete web pageelements which than may be reviewed by a site analysis reader module 65to determine if the site and the site content is known and/or expected.

A results analyzer 70 optionally then makes a determination as to whatweb page elements were included or will be returned. Based, in whole orin part, on the client software configuration and system rules, a stackautomation (e.g., network device layer, operating system kernel,input/output stack layer, etc.) and switch server 75 and/or page/contentreconstruction/modifier module 46 may then reassemble the rendered webpage using some or all of the original elements and optionally using newelements that are substituted or inserted dynamically in the resultingweb page. These elements may exist locally, may be delivered in whole orin part by peer nodes (such as those illustrated in FIG. 5) or from thecentral system 180 or by partner systems, such as an ad exchange or adserver.

Alternate or substitute advertisements and content may be selected basedon configuration parameters, parity characteristics size, type,relevancy, interests, etc. For example, the selection may be performedso as to select replacement content of similar size and shape to anadvertisement being overlaid, inserted or replaced, so as not to causethe reformatting of other portions of the user's page/content orotherwise adversely impact other portions of the user's page/content(e.g., to avoid the insertion of content causing article text adjacentto the inserted content to be only a few character wide and to avoidcausing each word in the article to “break”).

The user may or may not actually see the changed results as they may behidden. For example, some of the content that may have been replaced maybe an invisible inclusion and appears to the user and/or the originalcontent sender as unaltered. For example, this may be accomplished bymarking the corresponding tag's display attribute as hidden. By way offurther example, the content media download may be halted or paused. Byway of still further example, the corresponding content size attributemay be set to 0. Yet another example embodiment overlays content on topof original content. The altered content may include a user feature(e.g., a control displayed on the altered/replacement content, such as atoggle control, or accessed via a toolbar or menu) to unhide or restorethe original content as desired for display to the user.

An example merchant system 150 includes software hosted on a computingdevice that enables content contributors and advertisers to registertheir profiles and content, which optionally may be distributed withinthe distributed system. It may also include interfaces to partnerproviders such as ad networks, ad servers, DSP, etc. The content mayinclude renderable content, such as images, streamlining media, newsfeeds, blog text, textual content, links, program scripts,advertisements, other HTML and/or SGML data, etc. In addition to therenderable content, information may be stored related to the contentattributes, such as size, format, and/or other reference data.

The client software 40 may be hosted on a device 20, associated with auser 15. The client software 40 may communicate over a network 90 (e.g.,the Internet and/or other network) to a search entity 100 operating asearch engine and/or Internet site 120 that provides search results 130or other similar content provider or media including streaming media.The client software 40 may be configured to insert, replace or modifyadvertisements and/or search results, and render the results 30. Amerchant, via a merchant terminal 150, can interact with the clientsoftware and/or the system 180 as described elsewhere herein.

As discussed in greater detail below, the user terminal 20 (e.g., viathe client software 45) may obtain replacement content/advertisementsfrom one or more other client nodes 92 and/or one or more proxy nodes 94that may be operated by an enterprise. The client terminal 20 mayreceive, directly or indirectly, one or more replacement advertisementsvia ad network 96.

FIG. 2A illustrates an example process for inserting and/or improvingthe position of certain content. For example, the content may include anadvertisement and/or a listing (which may include a link to themerchant) that is or appears to be a search result listing. The processmay be performed in whole or in part by the client software describedherein, a proxy node, a peer node, or a central system.

At state 202A, data (e.g., Web page data) is received and parsed todetermine whether a first content (e.g., an advertisement and/or alisting of a merchant or advertising partner that has subscribed to haveimproved visibility of their advertisements and/or search rankings) iseither not present or is present but at a location that does not meetspecified criteria (e.g., merchant specified criteria). For example, ifthe web page includes a search result listing from a search engine, andthe listing includes a listing for the merchant, but theposition/ranking of the merchant listing does not meet a positioncriteria (e.g., where the criteria specifies a specificposition/ranking, such as the first listing, or a range, such as withinthe first 3 listings), the process will determine that the content isnot a location/position that meets the criteria. The determination maybe stored in memory and the position may be reordered for display to theuser. Optionally, the process does not determine if the search resultlisting from a search engine includes the first content.

At state 204A, if the first content is absent, the process identifies alocation for the first content. Optionally, this state is performedwithout determining with the first content is absent. The location maybe selected based on merchant/advertiser specified criteria (e.g.,content/advertisement is to be located as the first/top advertisement onpage; or the content/listing is to be positioned as the first searchresult listing) and/or the amount of physical display space available onthe page that is large enough/of the proper dimensions to hold the firstcontent. If other content is at the identified location, the othercontent is identified to be replaced or moved.

At state 206A, if the first content was determined to be present atstate 204A, but at a location that does not meet the first locationcriteria (such as the merchant specified criteria discussed above), thelocation of the first content is changed to a location that meets ormore closely meets the first criterion or criteria (e.g., theadvertisement is moved to the location as the top advertisement on page;or the content/listing is positioned as the first search resultlisting). If other content is at the new location, the other content isidentified to be replaced or moved.

Optionally, even if the process does not determine if the first contentis present in the original search listing, the process inserts the firstcontent at the new location, so that the first content may be listedtwice, at the original position (if the first content was in theoriginal listing) and at the new position. Optionally, the processinserts the first content, or variations thereof (such as a relatedadvertisement or related URL), at multiple locations in the searchlisting. Optionally the first content or related content of themerchant/advertiser is inserted in the search listing and in a targetedadvertisement area (e.g., above and/or on the side of the search resultlisting). Optionally, the number and placement of such insertions may bebased at least in part on a fee paid by the merchant advertiser, whereindifferent fees may be charged for different levels of service. Forexample, a first fee may be charged to have the first content insertedin a targeted advertisement area above the search results, a second feemay be charged to have the first content inserted in a targetedadvertisement area on the side of the search results, and a third feemay be charged to have the first content included in the search results,wherein the first, second, and third fees may also be based on thepositioning of the first content within the corresponding areas (e.g.,the top listing fee may be more expensive than a third position fee). Incertain embodiments a fee may be paid to have the first contentinserted/placed in multiple areas.

At state 208A, the process causes the first content to be rendered(e.g., via a browser on a user terminal) at the location that meets thefirst criterion or criteria.

FIG. 2B illustrates an example process for inserting selecting anddisplaying content. The process may be performed in whole or in part bythe client software described herein, a proxy node, a peer node, or acentral system.

At state 202B, data (e.g., web page data) is received and parsed toidentify one or more types of content (e.g., an advertisement and/or alisting of a merchant or advertising partner that has subscribed to haveimproved visibility of their advertisements and/or search rankings),referred to as first content, and parsed to identify the dimensions ofsuch first content.

At state 204B, a determination is made as to whether there is anopportunity to alter the first content based on one or more criteria. Atstate 206B, second content is selected based on one or more criteria.For example, the criteria can include one or more of the following orany combination thereof:

-   -   a user search query;    -   a user profile (e.g., demographics and/or specified areas of        interest);    -   advertiser specified criteria (e.g., desired demographics or        interest of users to whom advertisements should be served;        search terms, wherein if a user enters certain search terms in a        search query, the advertiser's ads should be served to the user;        payment of a placement fee by the advertiser, etc.).

At state 208B the second content is made more visible than the firstcontent when the second content is displayed in the rendered web page.For example, the first content (or a link to the first content) may beremoved entirely, and the second content may be displayed insubstantially the same location that the first content was originallyconfigured to be displayed at. By way of further example, the firstcontent may be made invisible using certain attributes while the secondcontent is made visible. By way of still further example, the secondcontent may overlay the first content (e.g., by having the z-orderattribute of the second content set to a higher order than the firstcontent) so that the first content cannot be viewed.

FIG. 6 illustrates example features, workflow and functions performed bythe client software. In one such example of this workflow, at state 602the user obtains the client software and installs it on their computingdevice (e.g., a personal computer system). For the purpose of thisexample the software will be installed as a plug-in to an existingInternet browser but could optionally be installed to work with otherprograms, such as instant messaging programs, or independently. At state604, the user may then establish an account with a central system, suchas central system 180 illustrated in FIG. 1.

At state 606, the user may then configure particular parameters thataffect the behavior of the client software such as scheduled times toexecute, maximum usage of system resources, and other settings. At state608, the client software communicates with a central system, such acentral system 180 illustrated in FIG. 1, or other peer nodes forfurther instructions such as a list of reference sites to access (e.g.,for use in passive mode where the client software automatically accessesthe reference sites at one or more specified uniform resource locators(URLs) to simulate a user navigating to the sites), the frequency atwhich these sites may be accessed, the targeted internal references tobe found at these sites and/or the simulated behavior when accessing thesites.

The client software, such as client software 40 illustrated in FIG. 1,may also be used to provide feedback data and beacon information to thecentral system or other peer nodes. This feedback data can include abatch list of instructions or individual instructions to be executedsequentially or in parallel by the central system. The client softwaremay also receive a list of advertisements or content in whole or in partfrom peer nodes, the central system 180 or an external system that willbe added to or substituted in one or more requested pages from thesesites. Optionally, the content and/or communications may be encrypted.

At state 610, the user utilizes the client software (e.g., an existingbrowser enhanced by a plug-in or instructed to use a proxy nodeproviding the functionality discussed herein) to submit a search query(e.g., for a topic such as “Concert Tickets” for a particular event) orto access a web site web page. At state 612, the search engine providessearch results to the client software, or the web site accessed by theclient software returns a web page. The returned search results or webpage may include ads or merchant links within the search results and/oradvertisements and links within the web page.

At state 614, the client software parses the content of the searchresults page or other web contents. For example, the client software mayevaluate the search results page to determine whether a merchantlink/entry (e.g., for a merchant whose has been designated to benefitfrom the advertisement enhancement services) is absent from the searchresults or the merchant link entry is listed with apriority/ranking/position lower than the merchant is designated toreceive, and/or that advertisements for the same or different merchantare not displayed, provided for display, and/or readily visible of theweb page served by the site.

Based at least in part on the evaluation performed at state 614, atstate 616 the client software may modify the web page/search results toinsert or substitute content, or to improve the positioning/ranking of asearch result listing, to increase visibility for one or more merchants.By way of illustration, an advertisement for a merchant may be insertedin a list of sponsored advertisements, and a missing or hard to findreference link (e.g., hard to find because it has a relatively lowpositioning in the search results so that it will take navigationsthough several pages until the merchant reference link is accessed) maybe inserted at the top of the list or at a higher position. Optionally,a subsequent background process may simulate the selection of theinserted link indicating to the search engine that the link was desired.These actions, processes and results may then be logged by the clientsoftware and communicated back to the central system (e.g., system 180illustrated in FIG. 1) or to peer nodes. For example, some or all of thenodes can log the processes and results so the value of the processesdescribed herein can be reported to one or more recipients (e.g.,advertisers) and to enable funds/rewards to be distributedappropriately. This process may be repeated for the same or differentinstructions.

If the client software is configured for automatic operation, theprocess proceeds from state 608 to state 618. When performing inautomatic mode, the client software may behave in a similar ways asdiscussed above with respect to states 610-620, but without userinteraction or with a reduced amount user interaction and with orwithout displaying requested web page or search results that areautomatically requested. By way of illustration, when the user is notactively utilizing the host system or the user is executing othersoftware (e.g., financial software, a word processor, an Internetbrowser, an email client, etc.), the client software may optionallyexecute instructions and tasks as similarly discussed above.

For example, at state 620, the client application receives (via a pulloperation (e.g., via a client application request) or via a pushoperation from remote system, such as the central system of a proxynode) a list of one or more sites/URLs. At states 622, 624, 626 theclient software optionally automatically navigates to and issues aURL/web page request or a user search query to a particular site fromthe list received, emulating a user request/search. Although the page(s)received via the automated request are optionally not rendered and theuser does not see the pages, the client software optionally evaluatesthe resulting pages and may optionally modify, insert, remove orsubstitute content from the resulting page (whether or not rendered),and based on the instruction set my simulate further actions on themodified page or via a direct link request to the sites enumerated bythe instruction set.

For both the manual process of states 610-616 and the automatic processof states 620-626, the process proceeds to state 628, and the clientsoftware records and logs the activities performed by the clientapplication (e.g., a record of the sites accessed, the advertisementsmodified/replaced, etc.). At state 630, the process forwards some or allof the logged events to the central system and/or one or more proxynodes. At state 632, a system (e.g., a financial or rewards system,which may be the central system), updates the user's account informationto reflect and benefits the user is to receive (financial or otherwise)as a result of the advertisement replacement/modification processesperformed at the foregoing states. At state 634, account settlement isperformed (e.g., periodically, such as monthly), wherein the user ispaid fees for participating in the services.

With respect to merchants, a merchant participating or that want toparticipate in the advertisement replacement/listing modificationprocess may register with the system. A new merchant may, and optionallyis required to enter profile data, financial information and/orconfiguration parameters for use by the system in managing thedistribution of content and advertisement. A merchant may also includereferences to other data already existing with respect to certainwebsites, where the user wants to improve the visibility and ranking ofsuch data on other sites. For example, a merchant may have their own website or web presence and pay for advertisements and listings to bedisplayed with other respect to the sites/web pages of other website ofother companies to provide better visibility and availability of themerchant's information. As described herein, the system may employ theclient software nodes to augment or enhance the visibility and rankingof a particular merchants existing content.

By way of an illustrative example, a merchant site may rank poorlybecause the site owner has not paid to increase its ranking orvisibility on a given search engine. Once the merchant registers withcentral system or otherwise is entitled to the advertisement/siteranking processes described herein (e.g., by registering with anotherauthorized entity), the client application hosted on one or moreterminals of one or more users may be instructed to simulate a user byautomatically searching and selecting or “clicking” on the merchant'ssite and/or links therein, thereby increasing the apparent randompopularity of the site and resulting in improved ranking of themerchants existing site within an independent search engine company.This same or similar technique can be used to affect the frequencyand/or placement of merchant or competitor advertisements.

In an example embodiment, a system (e.g., a central server) storesglobal information, including system-wide activities, regarding thesystem. The system may also deliver configuration and command logic tothe client software nodes, which supplements or augments userconfiguration data. The central system may be configured to send andreceive synchronous and/or asynchronous information over the Internet orother network to client software nodes, and performs data aggregationfor the network. However, optionally, one or more client software nodescan operate independently with little or potentially no communicationwith the central system. Thus, even if the central system/server istemporarily unable to communicate with the client software nodes, theclient software nodes can still perform some or all of the functions(e.g., advertisement substitution, ranking modification, etc.).

The central system may store merchant registration information,including some or all of the following: method of payment, authorizationof payment, and services purchased (e.g., ad replacement services, admodification services, ranking improvement services, etc.). Merchantdata may also include data relating to the creation and formatting ofcustomized text, images and/or other media. The merchant may select orenter particular words, word associations or other data of interest andrelate these selections to the included text, formatting and media,which are stored and communicated via the central system, peer nodes,and/or proxy nodes to one or more client software nodes.

The central system also may include an advertisement system and/or aninterface to one or more advertising partners, such as describedelsewhere herein, that enable merchants to promote advertiser content,text and/or media. The advertising system may utilize some or all ofclient software nodes to command, monitor, record and/or enhance theadvertisement process.

The central system also may include a payment and reporting system suchthat transaction and services may be recorded using data from thecentral system, one or more proxy nodes, and/or one or more clientsoftware nodes. The payment system is optionally configured to managethe distribution of fees and proceeds to various participants based onconfigurable parameters and level of participation. For example, themerchant may configure a payment structure for services, wherein some orall of the merchants service payments are distributed to users based ontheir client software configuration and level of participation (e.g.,the amount of demographic data provided, the number of searchesperformed using the client software, the number of times the merchant'sadvertisements have been displayed to the user, etc.).

FIG. 7 is an example workflow process performed by a merchant system,which may be included as a component of the distributed search engineand content distribution system described herein. For the purpose ofdescribing the example workflow described by FIG. 7, the merchant systemwill be considered to be a hosted application with Internet web pagespresenting the user interface(s). In this example, at state 702, amerchant enrolls with the system by providing data such as contact andfinancial data needed to identify and bill the merchant, and suchinformation is stored in merchant system memory. The merchant system mayoptionally request or require the input of security information, profileinformation, regulatory information and or/other information.

At state 704, the merchant system interface may request and store datafrom the merchant such as some or all of the following: target Internetsites, reference links, keywords, Uniform Resource Locator (URLs),advertisement text, advertisement graphics, active media, (e.g., FLASHmedia), streaming media (e.g., real time video media), and/or otherdata. At state 706, the merchant selects payment terms (e.g., a flatmonthly fee, a performance based fee based on improvements in searchresult rankings and/or advertisement placements) for the services beingprovided via the distributed search engine and content distributionsystem.

At state 708, the received data and/or other data may be used togenerate instructions for one or more instantiations of client softwareon one or more hosts, and optionally to search sites, identify contentor results, evaluate page or link information, modify results, or toperform other actions or behaviors within the system or through theclient software. With respect to actual user searches or requests, atstate 710 a user provides a search query to a search engine (e.g., athird party search engine) or a URL that corresponds to a search (e.g.,a URL that corresponds to a search result, such might be forwarded fromone user that performed a search to another user). At state 712, thecentral system and/or peers determine which merchant is to be providedwith an enhanced ranking and/or advertisement placement on therequesting user node based on the user characteristics (e.g.,demographics) and/or the merchant profile. For example, the process mayidentify which advertisers' profile (which may profile the advertisingmerchant and/or the desired viewers) that more or most closely matches agive user's profile.

At state 714, the identified merchant's advertisements are inserted intothe web page provided to the user (optionally replacing an existingadvertisement or other content) as a result of the user request/queryand/or the merchant's ranking in search results returned by the thirdparty search engine is modified/improved.

With respect to automatic mode, where client applications simulate userrequests/search queries, the process proceeds to state 711. At state712, the instructions are issued to one or a plurality of clientapplications to cause the client applications to execute one or morereference or search lists (as similarly described above) optionally in amanner configured to simulate random user requests/search queries. Atstate 714, references in returned pages to the merchant and/orcompetitors are identified. At 716, one or more client applicationssimulate a user activation of the referenced links (e.g., associatedwith the merchant).

At state 718, the client software of the client nodes records and logsthe activities performed by the respective client software (e.g., arecord of the sites accessed, the advertisements modified/replaced,etc.). At state 720, the process forwards some or all of the loggedevents to the central system and/or one or more proxy nodes. At state722, a system (e.g., a financial or rewards system, which may be thecentral system), updates the users' account information to reflect andbenefits the users are to receive (financial or otherwise) as a resultof the advertisement replacement/modification processes performed at theforegoing states and/or update merchant account information toaccordingly bill the merchant. At state 724, the merchant is charged forthe services provided via the distributed search engine and contentdistribution system.

The merchant system may store activity results of the system and theclient software nodes. This stored data and other data may be used tocreate reports, calculate billings, optimize node inter-communicationsand pathways, or determine other compensation or rewards.

Thus, FIG. 7 illustrates certain features and functions of an examplesystem and interactions with merchants and client software nodes.

Referring now in detail to FIGS. 1 and 5, a process stream isillustrated whereby users 10 may connect to a registration system 190,payment system 192, ad engine 194, reporting system 196, central system180, and other peer nodes and/or proxy nodes. It should be noted thatthe components of the system 180 may be hosted on a single computersystem or the components may be hosted on a plurality of computersystems which may be geography distributed over a large area and overmany systems. Either directly or through the use of the client software40 a user registers with the central system 180 and configures elementsof the software to run interactively or automatically from the user'sdevice 20, or the system can configure the elements of the software.

For example, a user may configure the client software to focus contentbased on user specified interests, demographics, and/or other data.Merchants may also connect to the central system 180 and enterregistration information in the registration system 190 and the paymentsystem 192. The payment system 192 optionally provides for a sharedpayment and reward methodology that are based on system parameters andparticipation.

The merchants can configure the ad engine 194 with desiredrepresentation media or reference information which is tracked withinthe reporting system 196. The client software, peer node, or proxy node40 retrieves information from the central system 180 or other peer orproxy nodes, and actively and/or passively makes requests to the thirdparty search engine 100 or other Internet sites based on rulesconfigured between the client software 40, other peer nodes, other proxynodes and central system 180. These requests may be used to perform oneor more of the following:

1) increase the search frequency of a desired reference;

2) record the order of a particular reference within a search results;

3) monitor and report the relative prioritization of a particularreference within a search results;

4) reorder or transform in some way the search results or content in away to improve the score or visibility of a specific reference, mostlikely desired by a merchant;

5) communicate between the distributed system elements information anddata to optimize the delivery network.

6) alter web page content based at least in part on client softwareconfiguration.

The system 180 may be connected via an interface 181 to a user bank orother financial site 198 in order to make deposits of fees being paid tothe user 15 for participating in processes described herein. The system180 may be connected to a merchant bank or other financial site 199 inorder to make withdrawals/charges for services rendered to the merchantand/or to made deposits. The system 180 may also be connected to one ormore partners 98.

Optionally, certain embodiments can be utilized by an enterprise, suchas an employer, merchant, vehicle operator, or venue operator to filterout certain advertisements on incoming pages directed to terminals(e.g., employee, customer, and/or visitor terminals, which will bereferred to as “member terminals”), and replace those advertisementswith enterprise selected content (or content selected by an entity, suchas a partner of the enterprise, that has been authorized to selectcontent by the enterprise) retrieved from an server (e.g., an enterpriseor partner server). For example, the enterprise/partner content mayinclude announcements regarding the enterprise, such as new productinformation, employee/customer/visitor events, employee benefitinformation, etc. Optionally, the enterprise can contract with an adbroker or other entity, to serve advertisements (e.g., of the enterpriseor a partner) to the member terminals, optionally in exchange forbenefits (such as those described above with respect to users) providedto the enterprise. The amount and/or type of benefits may be based onthe participation of employees/customers/visitors as similarly describedabove with respect to users.

Optionally, certain embodiments can be utilized by a user to replaceadvertisements on incoming pages to a user terminal with user selectedcontent, such as user photographs, videos, or other content. The usercontent may be accessed from the user terminal's memory, or via the userterminal from another system's data store or system node.

Unlike conventional centralized portal systems offered by typical searchengine operators, an example embodiment of the system described hereinoptionally employs a distributed architecture with user-configuredsoftware nodes that enhance the relationship between merchants and usersto shift the content provider and search engine value paradigm.

Those of skill would further appreciate that the various illustrativelogical blocks, modules, circuits, and algorithm steps described inconnection with the embodiments disclosed herein may be implemented aselectronic hardware, computer software, or combinations of both. Toclearly illustrate this interchangeability of hardware and software,various illustrative components, blocks, modules, circuits, and stepshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or software maydepend upon the particular application and design constraints imposed onthe overall system. Skilled artisans may implement the describedfunctionality in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the present invention.

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the invention. Thus, the present invention is notintended to be limited to the embodiments shown herein but is to beaccorded the widest scope consistent with the principles and novelfeatures disclosed herein.

1. A system, comprising: a processor; tangible, non-transitory mediathat stores a program that when executed by the processor is configuredto perform operations, comprising: receiving a request from a requestinguser to improve a ranking of a website associated with the requestinguser; transmitting communications to a plurality of nodes in response tothe received request to improve ranking, the nodes including respectivecomputing devices, wherein the communications are configured to cause atleast in part the plurality of nodes to: (a) automatically issue searchrequests, or (b) automatically activate links in search results, or (c)automatically issue uniform resource locator requests, or, (d)automatically perform a submit operation, or (e) any combination of (a),(b), (c), or (d); storing information related to the number of times theplurality of nodes performed (a), (b), (c), (d), or (e); issuing areport over a network, the report providing information related to thenumber of times the plurality of nodes performed (a), (b), (c), (d), or(e).
 2. The system as defined in claim 1, wherein the instructions areconfigured to cause the plurality of nodes to perform: (a), (b), (c),(d), or (e) at substantially random times within a first period of time.3. The system as defined in claim 1, wherein the instructions areconfigured to cause the plurality of nodes to perform: (a), (b), (c),(d), or (e) without displaying the results of the search requests,activated links, uniform resource locator requests, or submits on theplurality of nodes.
 4. The system as defined in claim 1, the operationsfurther comprising: storing in memory an indication that the first ofthe plurality of nodes has performed (a), (b), (c), (d), or (e); andstoring an indication that a deposit or credit is to be made withrespect to an account associated with a user associated with the userterminal at least partly in response to the indication that the first ofthe plurality of nodes has performed (a), (b), (c), (d), or (e).
 5. Thesystem as defined in claim 1, wherein the communications are configuredto cause at least in part the plurality of nodes to at leastautomatically perform submits.
 6. The system as defined in claim 1,wherein a first of the plurality of nodes performs (a), (b), (c), (d),or (e) at a time different than a second of the plurality of nodes.
 7. Amethod of initiating network communications, comprising: receiving arequest from a requesting user to improve a ranking of a websiteassociated with the requesting user; transmitting communications over anetwork to a first plurality of nodes in response to the receivedrequest to improve ranking, the nodes including respective computingdevices, wherein the communications are configured to cause at least inpart the first plurality of nodes to: (a) automatically issue searchrequests, or (b) automatically activate links in search results, or (c)automatically issue uniform resource locator requests, or, (d)automatically perform a submit operation, or (e) any combination of (a),(b), (c), or (d); storing information related to the number of times thefirst plurality of nodes performed (a), (b), (c), (d), or (e);transmitting information over a network, the information related to thenumber of times the first plurality of nodes performed (a), (b), (c),(d), or (e).
 8. The method as defined in claim 7, the method furthercomprising causing the first plurality of nodes to perform: (a), (b),(c), (d), or (e) at substantially random times within a first period oftime.
 9. The method as defined in claim 7, the method further comprisingcausing the first plurality of nodes to perform: (a), (b), (c), (d), or(e) without displaying the results of the search requests, activatedlinks, uniform resource locator requests, or submits on the firstplurality of nodes.
 10. The method as defined in claim 7, the methodfurther comprising: storing in memory an indication that the first ofthe first plurality of nodes has performed (a), (b), (c), (d), or (e);and storing an indication that a deposit or credit is to be made withrespect to an account associated with a user associated with the userterminal at least partly in response to the indication that the first ofthe first plurality of nodes has performed (a), (b), (c), (d), or (e).11. The method as defined in claim 7, wherein the communications areconfigured to cause at least in part the first plurality of nodes to atleast automatically perform submits.
 12. The method as defined in claim7, wherein a first of the first plurality of nodes performs (a), (b),(c), (d), or (e) at a time different than a second of the firstplurality of nodes.